串列可以用來儲存一群資料,像是成績、待辦事項、購物清單⋯⋯幾乎所有日常生活中的資料都可以透過串列來管理!
1. 增加元素
方法 | 用法 | 功能 | 範例 | 結果 |
---|---|---|---|---|
.append() |
list.append(x) |
在串列最後加上一個元素 | a = [1, 2]; a.append(3) |
[1, 2, 3] |
.insert() |
list.insert(index, x) |
在指定位置插入一個元素(原本的元素往後移) | a = [1, 3]; a.insert(1, 2) |
[1, 2, 3] |
2. 刪除元素
方法 | 用法 | 功能 | 範例 | 結果 |
---|---|---|---|---|
.remove() |
list.remove(x) |
刪除第一個出現的指定值(找不到會報錯) | a = [1, 2, 2, 3]; a.remove(2) |
[1, 2, 3] |
del |
del list[index] 或 del list[start:end] |
依位置刪除單一或多個元素,也可刪除整個串列 | a = [1, 2, 3]; del a[1] |
[1, 3] |
.pop() |
list.pop() 或 list.pop(index) |
刪除並回傳指定位置的元素,預設刪最後一個 | a = [1, 2, 3]; x = a.pop(1) |
a = [1, 3], x = 2 |
# 建立一個串列
fruits = ["apple", "banana", "cherry"]
# 增:新增一個元素
fruits.append("orange") # 加在最後
fruits.insert(1, "grape") # 插入到指定位置
# 刪:刪除一個元素
fruits.remove("banana") # 刪除指定值
deleted = fruits.pop() # 刪除最後一個,並回傳它
del fruits[0] # 刪除指定位置的值
# 改:修改某個位置的值
fruits[0] = "watermelon" # 改成新的值
# 查:取得某個值或遍歷整個串列
print("cherry" in fruits) # 查詢是否存在
for fruit in fruits:
print(fruit)
輸出:
True
grape
watermelon
cherry
** sort() 方法 和 sorted() 函數 **
方法 | 是否改變原本串列 | 用法 | 回傳值 |
---|---|---|---|
.sort() |
會改變原本串列 | list.sort() |
None (不會回傳新串列) |
sorted() |
不會改變原本串列 | sorted(list) |
回傳新串列 |
(1) list.sort()
numbers = [5, 3, 8, 1]
numbers.sort() # 直接改變原本串列
print(numbers) # [1, 3, 5, 8]
(2) sorted(list)
numbers = [5, 3, 8, 1]
new_list = sorted(numbers) # 回傳排序後的新串列
print(numbers) # [5, 3, 8, 1](原本的串列不變)
print(new_list) # [1, 3, 5, 8]
(1) 升冪(由小到大,預設)
nums = [3, 1, 4, 1, 5]
nums.sort()
print(nums) # [1, 1, 3, 4, 5]
(2) 降冪(由大到小)
nums = [3, 1, 4, 1, 5]
nums.sort(reverse=True)
print(nums) # [5, 4, 3, 1, 1]
reverse=True 表示反向排序
fruits = ["banana", "apple", "cherry"]
fruits.sort()
print(fruits) # ['apple', 'banana', 'cherry'] → 按字母順序
注意:字串排序是根據 字母順序(ASCII / Unicode 編碼)
大寫字母的排序會在小寫字母之前。
使用 key 參數可以設定排序的依據。
(1) 依字串長度排序
fruits = ["banana", "apple", "cherry", "kiwi"]
fruits.sort(key=len)
print(fruits) # ['kiwi', 'apple', 'banana', 'cherry']
(2) 忽略大小寫排序
fruits = ["banana", "Apple", "cherry"]
fruits.sort(key=str.lower)
print(fruits) # ['Apple', 'banana', 'cherry']
numbers = [42, 5, 13, 7, 99]
# 升冪排序(小到大)
numbers.sort()
print("升冪排序:", numbers)
# 降冪排序(大到小)
numbers.sort(reverse=True)
print("降冪排序:", numbers)
# 不改變原串列的排序(使用 sorted)
original = [3, 1, 4, 2]
print("原本:", original)
print("排序後:", sorted(original))
print("確認原串列沒變:", original)
今天學了串列(List)的增刪改查與排序方法,包括 .append()、.insert()、.remove()、del、以及 .pop() 的使用。比較有趣的是 .pop() 不只刪除,還會回傳被刪掉的值。不過我發現自己很容易忘記索引的對應方式,例如 a[0] → 1、a[1] → 2、a[2] → 3。每次在刪除或取值時,如果沒有先想清楚索引的位置,就會刪錯元素。
明天要學習 Tuple(不可變串列) 與 Set(集合)!